<?php

  /**
   * Photo
   *
   * ORM для таблицы фотографий к постам
   *
   * @property string $photo   имя файла
   * @property int    $post_id идентификатор поста
   * @property int    $order   порядковый номер
   * @property int    $is_main признак главной фотографии
   */

  final class Photo extends Record
  {
    /**
     * вернуть экземпляр модели
     *
     * @return Category
     * @access public
     */
    public static function model($className = __CLASS__)
    {
      return parent::model($className);
    }

    /**
     * правила проверки атрибутов модели
     *
     * @return array[]
     * @access public
     */
    public function rules()
    {
      return array(
        array("photo", "length", "min" => 1, "max" => $this->fieldSize("photo"), "encoding" => "utf-8", "allowEmpty" => false),
        array("post_id", "exist", "className" => "Post", "attributeName" => "id", "allowEmpty" => false),
        array("order", "required"),
        array("is_main", "safe")
      ) + parent::rules();
    }

    /**
     * действия перед удалением
     *
     * @return bool
     * @access protected
     */
    protected function beforeDelete()
    {
      if (($success = parent::beforeDelete()) && ($photo = $this->photo) && !$this->exists("`photo`='$photo' and `post_id`!='$this->post_id'"))
        ContentController::imgRemove(Post::PHOTOS, $photo);
      return $success;
    }
  }

?>
